package com.jincheng.system.domain.dto;

import com.jincheng.common.core.domain.entity.SysDictData;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PieChartDTO {
    private String name;
    private Long value;

    /**
     * 构建饼图数据
     *
     * @param pieData  查询结果
     * @param dictList 字典列表
     * @return 饼图数据
     */
    public static List<PieChartDTO> buildPieData(Map<String, Map<String, Long>> pieData, List<SysDictData> dictList) {
        if (dictList == null) {
            return Collections.emptyList();
        }
        List<PieChartDTO> pieChartDTOList = new ArrayList<>();
        dictList.forEach(dictData -> {
            String key = dictData.getDictValue();
            Long value = pieData.containsKey(key) ? pieData.get(key).get("value") : 0L;
            PieChartDTO pieChartDTO = new PieChartDTO();
            pieChartDTO.setName(dictData.getDictLabel());
            pieChartDTO.setValue(value);
            pieChartDTOList.add(pieChartDTO);
        });
        return pieChartDTOList;
    }
}
